package com.anolesoft.twelvePlan.vo;

import com.anolesoft.twelvePlan.listener.LocalDateTimeDeSerializer;
import com.anolesoft.yr.demo.BaseQueryParamVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.*;
import lombok.experimental.SuperBuilder;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @author zyq
 * @date 2022/4/8
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class PlanCheckVO extends BaseQueryParamVO implements Serializable {
    //private String objuid;
    //private String serialNumber;//零件序号
    //private String flag;	//标记
    //private String jx;//机型
    //private String partId;//图号
    //private Integer djNum;//单机数
    //private String innerWork;//内部分工
    //private String processRoute;//工艺路线
    //private String longPeriodPart;//长周期零件
    //private String deliveryType;//交付类型
    //private String partType;//零件类型
    //private String jfWorkshop;	//交付车间
    //private String jsWorkshop;//接收车间
    //private String deliveryOrder;//交付顺序
    //private String matching;//配套
    //private String groupingA;//分组
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    //@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GTM+8")
    //private LocalDate checkTime;//公司考核日期
    //private String isExecutable;//是否可执行
    //private String deliverTotal;//交付累计
    //private String deliverState;//交付状态
    //private Integer jxmlStock;//机型毛料库存
    //private Integer mlStockTotal;//毛料库存总数
    //private Integer bcpStockNum;//机型半成品库存
    //private Integer bcpStockTotal;//半成品库存总数
    //private String mesProgress;//mes进度
    //private String outProcess;//涉外工序
    //private String equal;//等同项
    //private String waixie;//外协
    //private String waixieFactory;//外协厂家
    //private Integer tempPlanNum;//临时计划数（sdw投料数量）
    //private String remarks1;//备注（下达计划的备注）
    //private String moreInfo;//补充说明
    //private String chargePerson;//负责人
    //private String endProduct;//成品
    //private String tools;//工具
    //private String equipment;//设备
    //private String technicalQuality;//技术质量
    //private String blanking;//下料
    //private String outsourcing;//外购
    //private String outCooperation;//外厂协作
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    //@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GTM+8")
    //private LocalDate planTime;//工段计划完成时间
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    //@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GTM+8")
    //private LocalDate actualTime;//计划实际完成时间
    //private String ladong;//拉动
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    //@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GTM+8")
    //private LocalDate ladongchecktime;//拉动考核日期
    //private String planGrade;//计划等级
    //private Integer jxmlTotal;//机型毛料累计
    //private Integer jxbcpTotal; //机型半成品累计
    //private String issue;//问题汇总
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    //@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GTM+8")
    //private LocalDate deliverTime;//零件交付日期
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    //@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GTM+8")
    //private LocalDate completionTime;//零件完成日期
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    //@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GTM+8")
    //private LocalDate gdcheckTime;//工段完检日期
    //private Integer productStock;//成品库存
    //private String affectedStation;//影响站位
    //private String factoryId;   //厂代号
    //private String name;   //负责人姓名
    //private String state;//状态
    //private String isExecutable2; //erp可执行状态
    //private String checkTime2;//考核日期
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    //@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GTM+8")
    //private LocalDate checkTime2Date;//考核日期(用于查询修改)
    //private String parentPartId;//父图号
    //private String jzjh;    //是否精准计划
    //private Integer putNum;//投产数量

    private String objuid;
    private String serialnumber;
    private String flag;
    private String jx;
    private String partid;
    private Integer djnum;
    private String innerwork;
    private String processroute;
    private String longperiodpart;
    private String deliverytype;
    private String parttype;
    private String jfworkshop;
    private String jsworkshop;
    private String deliveryorder;
    private String matching;
    private String groupingA;
    @JsonDeserialize(using = LocalDateTimeDeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime checktime;
    private String isexecutable;
    private String delivertotal;
    private String deliverstate;
    private Integer jxmlstock;
    private Integer mlstocktotal;
    private Integer bcpstocknum;
    private Integer bcpstocktotal;
    private String mesprogress;
    private String outprocess;
    private String state;
    private String equal;
    private String waixie;
    private String waixiefactory;
    private Integer tempplannum;
    private String remarks1;
    private String moreinfo;
    private String chargeperson;
    private String endproduct;
    private String tools;
    private String equipment;
    private String technicalquality;
    private String blanking;
    private String outsourcing;
    private String outcooperation;
    @JsonDeserialize(using = LocalDateTimeDeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime plantime;
    @JsonDeserialize(using = LocalDateTimeDeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime actualtime;
    private String ladong;
    @JsonDeserialize(using = LocalDateTimeDeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime ladongchecktime;
    private String plangrade;
    private String jxmltotal;
    private String jxbcptotal;
    private String issue;
    @JsonDeserialize(using = LocalDateTimeDeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime delivertime;
    @JsonDeserialize(using = LocalDateTimeDeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime completiontime;
    @JsonDeserialize(using = LocalDateTimeDeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime gdchecktime;
    private Integer productstock;
    private String affectedstation;
    private Integer putnum;
    private String xiadauid;
    private Integer planstate;
    private String factoryId;
    private String checktime2;
    private String parentpartid;
    private String jzjh;
    private String plangradeid;
    private String lltotal;
    private Integer kexingColor;    //是否可执行变色标记

    private String name;   //负责人姓名
    private String isexecutable2; //erp可执行状态
    @JsonDeserialize(using = LocalDateTimeDeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime checkTime2Date;//考核日期(用于查询修改)
    @JsonDeserialize(using = LocalDateTimeDeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GTM+8")
    private LocalDateTime plantime1;//工段计划完成日期(用于查询)
    @JsonDeserialize(using = LocalDateTimeDeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GTM+8")
    private LocalDateTime plantime2;//工段计划完成日期(用于查询)
    private String[] chargePersonList;  //前台传递的负责人信息
    private String[] waixies;   //查询用外协数组
    private String partidLike;  //图号模糊查询
    private String[] jxList;   //查询用机型数组
    private String isPlanTime;    //工段计划完成日期是否为空
    private String[] plangrades; //查询用计划等级数组
}
